#pragma once

#include "Widgets/Widget.h"
#include "Widgets/CheckBoxWidget.h"
#include "Misc/EngineEditorMacros.h"
#include "Widgets/EditorCheckBoxWidget.m.h"


class RTexture2D;
class RMouseWidget;

RCLASS()
class REditorCheckBoxWidget : public RWidget
{
    ROBJECT

public:
    REditorCheckBoxWidget();

    TWidgetAttribute<ECheckBoxWidgetState> CheckState;

    TDelegate<void,ECheckBoxWidgetState /*New State*/ > OnCheckStateChanged;

protected:
    virtual void PaintSelf(uint16_t& InZOrder,const SRect& InClipArea) override;


    TWeakObjectPtr<RMouseWidget> Mouse; 

    TSharedObjectPtr<RTexture2D> Checked;
    TSharedObjectPtr<RTexture2D> Unchecked;
    TSharedObjectPtr<RTexture2D> Undetermined;
    TSharedObjectPtr<RTexture2D> Checked_Highlight;
    TSharedObjectPtr<RTexture2D> Unchecked_Highlight;
    TSharedObjectPtr<RTexture2D> Undetermined_Highlight;

};